#define  _CRT_SECURE_NO_WARNINGS

//#include<iostream>
//#include<vector>
//#include<algorithm>
//using namespace std;

#include "vector.h"

void Test_vector1()
{
	//vector<int> v;
	//v.push_back(1);
	//v.push_back(2);
	//v.push_back(3);
	//v.push_back(4);

	//for (auto e : v)
	//{
	//	cout << e << " ";
	//}
	//cout << endl;

	//vector<int>::iterator it = v.begin();
	//while (it != v.end())
	//{
	//	cout << *it << " ";
	//	it++;
	//}
	//cout << endl;

	//for (int i = 0; i < v.size(); i++)
	//{
	//	cout << v[i] << " ";
	//}
	//cout << endl;

	//vector<int> v(10, 2);
	//vector<int>::iterator it = v.begin();
	//while (it != v.end())
	//{
	//	cout << *it << " ";
	//	it++;
	//}
	//cout << endl;

	//vector<int> v;
	//size_t sz = v.capacity();
	//cout << "capacity->" << sz << endl;
	//for (int i = 0; i < 100; i++)
	//{
	//	v.push_back(i);
	//	if (sz != v.capacity())
	//	{
	//		sz = v.capacity();
	//		cout << "capacity->" << sz << endl;
	//	}
	//}

	//vector<int> v;
	//size_t sz = v.capacity();
	//cout << "capacity->" << sz << endl;
	//for (int i = 0; i < 100; i++)
	//{
	//	v.push_back(i);
	//	if (sz != v.capacity())
	//	{
	//		sz = v.capacity();
	//		cout << "capacity->" << sz << endl;
	//	}
	//}
	//cout << v.size() << endl;
	//cout << v.capacity() << endl;
	//v.reserve(10);
	//cout << v.size() << endl;
	//cout << v.capacity() << endl;

	//cout << endl;

	//cout << v.size() << endl;
	//cout << v.capacity() << endl;
	//v.resize(10);
	//cout << v.size() << endl;
	//cout << v.capacity() << endl;

	//v.shrink_to_fit();
	//cout << v.size() << endl;
	//cout << v.capacity() << endl;

	//vector<int> v;
	//v.resize(10, 1);
	//for (auto e : v)
	//{
	//	cout << e << " ";
	//}
	//cout << endl;

	//vector<int> v;
	//v.push_back(1);
	//v.push_back(2);
	//v.push_back(3);
	//v.push_back(4);
	//v.push_back(5);

	////vector<int>::iterator pos = find(v.begin(), v.end(), 3);
	//auto pos = find(v.begin(), v.end(), 3);
	//if (pos != v.end())
	//{
	//	v.insert(pos, 10);
	//}

	//for (auto e : v)
	//{
	//	cout << e << " ";
	//}
	//cout << endl;

	//v.insert(v.begin(), 30);
	//for (auto e : v)
	//{
	//	cout << e << " ";
	//}
	//cout << endl;
	//v.insert(v.begin() + 3, 30);
	//for (auto e : v)
	//{
	//	cout << e << " ";
	//}
	//cout << endl;

	//vector<int> v;
	//string s("abcd");
	//v.insert(v.begin(), s.begin(), s.end());
	//for (auto e : v)
	//{
	//	cout << e << " ";
	//}
	//cout << endl;
}

//void Test_vector2()
//{
//	vector<string> v;
//
//	string s("tassel");
//	v.push_back(s);
//	cout << v[0] << endl;
//
//	//anonymity
//	v.push_back(string("tassel"));
//	cout << v[1] << endl;
//
//	v.push_back("tassel");
//	cout << v[2] << endl;
//}

//class Solution 
//{
//public:
//	vector<vector<int>> generate(int numRows)
//	{
//		vector<vector<int>> v(numRows);
//		
//		for (int i = 0; i < numRows; i++)
//		{
//			for (int j = 0; j <= i; j++)
//			{
//				if (j == 0 || i == j)
//					v[i].push_back(1);
//				else
//					v[i].push_back(v[i - 1][j] + v[i - 1][j - 1]);
//			}
//		}
//		return v;
//	}
//};

//class Solution 
//{
//public:
//	vector<int> singleNumber(vector<int>& nums)
//	{
//		vector<int> v;
//		int val = 0;
//		for (auto e : nums)
//		{
//			val ^= e;
//		}
//
//		int i = 0;
//		for (i = 0; i < 32; i++)
//		{
//			if (((val >> i) & 1) == 1)
//				break;
//		}
//
//		int ret1 = 0;
//		int ret2 = 0;
//		for (auto e : nums)
//		{
//			if (((e >> i) & 1) == 0)
//				ret1 ^= e;
//			else
//				ret2 ^= e;
//		}
//
//		v.push_back(ret1);
//		v.push_back(ret2);
//		return v;
//	}
//};

//int main()
//{
//	//Test_vector1();
//	//Test_vector2();
//	//vector<vector<int>> v = Solution().generate(5);
//	//for (int i = 0; i < v.size(); i++)
//	//{
//	//	for (int j = 0; j < v[i].size();j++)
//	//	{
//	//		cout << v[i][j] << " ";
//	//	}
//	//	cout << endl;
//	//}
//
//	vector<int> v1;
//	v1.push_back(1);
//	v1.push_back(2);
//	v1.push_back(1);
//	v1.push_back(3);
//	v1.push_back(2);
//	v1.push_back(5);
//
//	vector<int> v2 = Solution().singleNumber(v1);
//	for (auto e : v2)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//	
//	return 0;
//}

//#include<vector>
//#include<string>
//
//int main()
//{
//	//vector<int> v;
//	//size_t temp = v.capacity();
//	//cout << "capacity->" << temp << endl;
//	//for (int i = 0; i < 100; i++)
//	//{
//	//	v.push_back(1);
//	//	if (temp != v.capacity())
//	//	{
//	//		temp = v.capacity();
//	//		cout << "capacity->" << temp << endl;
//	//	}
//	//}
//
//	//vector<int> v;
//	//v.push_back(1);
//	//v.push_back(1);
//	//v.push_back(1);
//	//v.push_back(1);
//	//v.push_back(1);
//	//v.push_back(1);
//	//v.push_back(1);
//	//cout << v.capacity() << endl;
//	//v.resize(8, 6);
//	//for (auto e : v)
//	//{
//	//	cout << e << " ";
//	//}
//	//cout << endl;
//
//	//string s("Hello World");
//	//cout << s.capacity() << endl;
//	//s.resize(13, 'c');
//	//for (auto e : s)
//	//{
//	//	cout << e << " ";
//	//}
//
//	return 0;
//}

//class Date
//{
//public:
//	Date(int year, int minute, int day)
//	{
//		cout << "Date(int,int,int):" << this << endl;
//	}
//
//	Date(const Date& d)
//	{
//		cout << "Date(const Date& d):" << this << endl;
//	}
//
//	~Date()
//	{
//		cout << "~Date():" << this << endl;
//	}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//Date Test(Date d)
//{
//	Date temp(d);
//	return temp;
//}
//
//int main()
//{
//	Date d1(2022, 1, 13);
//	Test(d1);
//	return 0;
//}

int main()
{
	byh::Test_vector();
	return 0;
}